Visual Basic (Declaration) | |
---|---|
<ExtensionAttribute()> Public Overloads Shared Function Filter (Of TQuery As ITypedEntityQuery, T As Class)( _ ByVal query As TQuery, _ ByVal filter As Func(Of IQueryable(Of T),IQueryable(Of T)) _ ) As TQuery |
Visual Basic (Usage) | ![]() |
---|---|
Dim query As TQuery Dim filter As Func(Of IQueryable(Of T),IQueryable(Of T)) Dim value As TQuery value = EntityQueryExtensions.Filter(Of TQuery, T)(query, filter) |
C# | |
---|---|
[ExtensionAttribute()] public static TQuery Filter<TQuery,T>( TQuery query, Func<IQueryable<T>,IQueryable<T>> filter ) where TQuery: ITypedEntityQuery where T: class |
C++/CLI | |
---|---|
[ExtensionAttribute()] public: static TQuery^ Filtergeneric<typename TQuery> generic<typename T> ( TQuery^ query, Func<IQueryable<T^>^,IQueryable<T^>^>^ filter ) where TQuery: ITypedEntityQuery where T: ref class |
Parameters
- query
- Query to be appended to
- filter
- A Func that takes and returns an IQueryable{T}
Type Parameters
- TQuery
- Entity type queried
- T
- Entity type of the new query returned
Return Value
A new queryC# | ![]() |
---|---|
public void FilteringSample() { // Query for all customers. A filter will be applied prior to execution. var mgr = new DomainModelEntityManager(); mgr.Querying += new EventHandler<EntityQueryingEventArgs>(mgr_Querying); var list = mgr.Customers.ToList(); } // Client-side filtering in the EM.Querying event handler private void mgr_Querying(object sender, EntityQueryingEventArgs e) { EntityQueryFilterCollection clientFilters = new EntityQueryFilterCollection(); clientFilters.AddFilter<Customer>(q => q.Where(c => c.Country == "UK")); e.Query = e.Query.Filter(clientFilters); } |
A Filter is most useful in appending to an existing query on the server prior to execution, where you cannot easily modify the query expression provided.
The filter, although it looks intimidating, is a simple Where predicate which you're already familiar with when using query expression syntax. See the example for more information.
This signature is used when the entity type of the filter is different than that of the query.
Note that Filter returns a new query with the filter(s) added; the original query is not modified.
Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family